package com.wargameproject.unite;

import com.wargameproject.Case;
import com.wargameproject.Joueur;
import com.wargameproject.Partie;
import com.wargameproject.terrain.Base;

public abstract class Unite {

	public Case position;

	public int attaque;
	public String typeAttaque;
	public int porteeAttaque;
	public boolean peutAttaquer = false;

	public String typeArmure;
	public float armureSurNormal;
	public float armureSurPercante;
	public float armureSurMagique;
	public float armureSurSiege;
	public float vie;
	public float viemax;

	public int mouvement;
	public boolean peutBouger = false;

	public int visibilite;
	public int cout;
	public Joueur joueur;

	public abstract void attaquer(Unite unit);

	public abstract void riposter(Unite unit);

	public void recharger() {
		peutAttaquer = true;
		peutBouger = true;
	}

	public abstract void deplacer(Case c);

	public void afficheImage() { // ABSTRAITE

	}

	public void afficheImageFonce() { // ABSTRAITE
	}

	public abstract void casesCliquables();

	public void brouillardDeGuerre() {
		this.position.brouillardDeGuerre(this.visibilite);
	}
	public void brouillardDeGuerre(int augmentationVisibilite) {
		this.position.brouillardDeGuerre(this.visibilite+augmentationVisibilite);
	}	

	// __________________________________________--------------------------_______________

	public void soigner() {
		if (this.vie != this.viemax) {
			if (this.peutAttaquer = true && this.peutBouger != false) {
				int soins = 2;
				if (this.vie + soins >= this.viemax) {
					this.vie = this.viemax;
				} else {
					this.vie = vie + soins;
				}
				this.peutAttaquer = false;
				this.peutBouger = false;
			}
		}
	}
	
	public void capturer(Base b, Joueur joueurCourant){		
		b.joueur=joueurCourant;
	}

}
